Un Puntatore intelligente è una struttura dati astratta che agisce come un puntatore ma contiene ulteriori metadati e logica per gestire i dati a cui punta. Mentre un riferimento standard (&T) è semplicemente un indirizzo di memoria — un puntatore "stupido" — mentre il modello di puntatore intelligente in Rust utilizza strutture per incapsulare i puntatori con regole personalizzate per l'ownership, il controllo di accesso e la pulizia automatica.
Il vantaggio dei metadati
Pensa a un riferimento standard come a una Chiave di casa base: offre l'accesso, ma niente altro. Un Puntatore intelligente è un Sistema di chiavi magnetiche; la carta memorizza metadati (registri di accesso, permessi, scadenza) e può chiudere automaticamente la porta (pulizia) quando te ne vai.
La logica fondamentale
In Rust, i puntatori intelligenti sono definiti implementando le Deref e Drop trait. Ciò permette loro di comportarsi come riferimenti eseguendo logica personalizzata quando vengono acceduti o distrutti.